# ############## 索引 ##############
def index_op():
    greeting = 'Hello'
    print(greeting[0])  # H
    print(greeting[-1])  # 0


# ############## 切片（分片） ##############
def cut_op():
    numbers = [0, 1, 2, 3, 4, 5, 6, 7]
    # 第一个索引值包括在边界内，第二个索引值不包括在边界内
    print(numbers[3:6])  # [3, 4, 5]
    print(numbers[3:])  # [3, 4, 5, 6, 7]
    print(numbers[:6])  # [0, 1, 2, 3, 4, 5]
    print(numbers[:])  # [0, 1, 2, 3, 4, 5, 6, 7]
    # 从后往前
    print(numbers[-3:-1])  # [5, 6]
    # 显示指定步长，从第1个（包含）->第6个（不包含）中每2个元素的第一个
    print(numbers[1:6:2])
    # 显示指定负步长，从第6个（包括）到第1个（不包括）每2个元素的第一个
    print(numbers[6:1:-2])


if __name__ == '__main__':
    index_op()
    cut_op()
